package zhoug.map.dianditu;

import zhoug.map.MapBound;

import androidx.annotation.Keep;

/**
 * 搜索参数
 * @Author: zhoug
 * @Date: 2025-01-03
 * @Description:
 */
@Keep
public class SearchParams {
    public static final int QUERY_TYPE_NORMAL=1;//普通搜索 搜索范围太大没有数据,会返回提示信息
    public static final int QUERY_TYPE_BOUND=2;//视野内搜索
    public static final int QUERY_TYPE_NEAR=3;//周边搜索服务
    public static final int QUERY_TYPE_POLYGON=10;//多边形搜索服务
    public static final int QUERY_TYPE_AREA =12;//行政区划区域搜索服务 会返回提示信息
    public static final int QUERY_TYPE_SPECIFY =13;//分类搜索服务


    /**
     * 必填
     * 搜索:关键字/地理编码:地址
     *eg:商厦
     */
    private String keyWord;//
    /**
     * 行政区划区域搜索服务 必填
     * 指定行政区的国标码（行政区划编码表）严格按照行政区划编码表中的（名称，gb码）
     * 9位国标码，如：北京：156110000或北京。
     * eg:156110000 或者北京
     */
    private String specify;
    /**
     * 必填
     * 服务查询类型参数
     * eg:12
     */
    private int queryType=QUERY_TYPE_NORMAL;
    /**
     * 必填
     * 返回结果起始位（用于分页和缓存）默认0
     */
    private int start=0;
    /**
     * 必填
     * 返回的结果数量（用于分页和缓存）取值范围1-300
     */
    private int count=30;
    /**
     * 可选
     * 数据分类（分类编码表）参数可以分类名称或分类编码。多个分类用","隔开(英文逗号)
     *下载地址 https://download.tianditu.gov.cn/download/xzqh/Type.csv
     */
    private String dataTypes;
    /**
     * 可选
     * 返回poi结果信息类别
     * 取值为1，则返回基本poi信息； 取值为2，则返回详细poi信息
     */
    private int show=1;
    /**
     * 视野内搜索服务/普通搜索 必填
     * 地图视野范围 格式:最小经度,最小纬度,最大经度,最大纬度
     * eg:"116.02524,39.83833,116.65592,39.99185"
     */
    private String mapBound;
    /**
     * 视野内搜索服务/普通搜索 必填 1-18级
     * 目前查询的级别
     */
    private int level;
    /**
     * 周边搜索服务 必填
     * 查询半径 单位:米 （10公里内）
     */
    private int queryRadius;
    /**
     * 周边搜索服务 必填
     * 中心点，经纬度坐标
     * eg: "116.48016,39.93136"
     */
    private String pointLonlat;
    /**
     * 多边形搜索服务 必填
     * 多边形范围数据(经纬度坐标对) 经度和纬度用","分割，首尾坐标对需相同。
     * eg:"lon1,lat1,lon2,lat2,lon3,lat3,lon4,lat4,lon5,lat5,lon1,lat1)"
     */
    private String polygon;






    public String getKeyWord() {
        return keyWord;
    }

    public void setKeyWord(String keyWord) {
        this.keyWord = keyWord;
    }

    public String getSpecify() {
        return specify;
    }

    public void setSpecify(String specify) {
        this.specify = specify;
    }

    public int getQueryType() {
        return queryType;
    }

    public void setQueryType(int queryType) {
        this.queryType = queryType;
    }

    public int getStart() {
        return start;
    }

    public void setStart(int start) {
        this.start = start;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getDataTypes() {
        return dataTypes;
    }

    public void setDataTypes(String dataTypes) {
        this.dataTypes = dataTypes;
    }

    public int getShow() {
        return show;
    }

    public void setShow(int show) {
        this.show = show;
    }

    public String getMapBound() {
        return mapBound;
    }

    public void setMapBound(String mapBound) {
        this.mapBound = mapBound;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public int getQueryRadius() {
        return queryRadius;
    }

    public void setQueryRadius(int queryRadius) {
        this.queryRadius = queryRadius;
    }

    public String getPointLonlat() {
        return pointLonlat;
    }

    public void setPointLonlat(String pointLonlat) {
        this.pointLonlat = pointLonlat;
    }

    public String getPolygon() {
        return polygon;
    }

    public void setPolygon(String polygon) {
        this.polygon = polygon;
    }

    public void setBound(MapBound bound) {
        if(bound!=null){
            mapBound= bound.getMinLongitude()+","+bound.getMinLatitude()+","+bound.getMaxLongitude()+","+bound.getMaxLatitude();
        }
    }

}

